
#ifndef  __MONITOR_INTERFACE__
#define  __MONITOR_INTERFACE__

#include "fsmonitor_global.h"
#include <iostream>


class IChangeNotify
{
public:
	virtual void OnChangeNotify(int dwAction, bool isDir, bool bExist, bool bHide, const std::wstring &watcherpath, const std::wstring &changepath){}
};

class DirWatcher;
class FSMONITOR_API CMonitorInterface
{
public:
	CMonitorInterface(IChangeNotify* pChangeNotify);
	virtual ~CMonitorInterface();


	void StopWatch();
	void AddWatch(const std::wstring &dir, int mode =0);
	bool isRuning();
    bool isHighOsVersion();
private:
	CMonitorInterface();
	DirWatcher *m_pDirWatcher;
};

#endif    //__MONITOR_INTERFACE__